#include<stack>
#include<queue>
#include<iostream>

class MyStack {
public:
    std::queue<int> que;
    MyStack() {
        
    }
    
    void push(int x) {
        que.push(x);
    }
    
    int pop() {
        for(int i = 0; i < que.size() - 1; i++){
            que.push(que.front());
            que.pop();
        }
        int result = que.front();
        que.pop();
        return result;
    }
    
    int top() {
        return que.back();
    }
    
    bool empty() {
        return que.empty();
    }
};

int main() {
    MyStack myStack;
    myStack.push(1);
    myStack.push(2);
    std::cout << "Top: " << myStack.top() << std::endl;  // 返回 2
    std::cout << "Pop: " << myStack.pop() << std::endl;  // 返回 2
    std::cout << "Empty: " << (myStack.empty() ? "true" : "false") << std::endl;  // 返回 false

    return 0;
}